//package com.lanmaoly.cunzheng.file;
//
//import org.apache.commons.codec.digest.DigestUtils;
//import org.apache.commons.io.IOUtils;
//
//import java.io.BufferedInputStream;
//import java.io.FileInputStream;
//import java.io.IOException;
//
///**
// * 大文件
// * @author Administrator
// */
//public class StreamFileReader {
//    private BufferedInputStream fileIn;
//    private long fileLength;
//    private int arraySize;
//    private byte[] array;
//
//    public StreamFileReader(String fileName, int arraySize) throws IOException {
//        this.fileIn = new BufferedInputStream(new FileInputStream(fileName), arraySize);
//        this.fileLength = fileIn.available();
//        this.arraySize = arraySize;
//    }
//
//    public int read() throws IOException {
//        byte[] tmpArray = new byte[arraySize];
//        // 暂存到字节数组中
//        int bytes = fileIn.read(tmpArray);
//        if (bytes != -1) {
//            // 字节数组长度为已读取长度
//            array = new byte[bytes];
//            // 复制已读取数据
//            System.arraycopy(tmpArray, 0, array, 0, bytes);
//            return bytes;
//        }
//        return -1;
//    }
//
//    public void close() throws IOException {
//        fileIn.close();
//        array = null;
//    }
//
//    public byte[] getArray() {
//        return array;
//    }
//
//    public long getFileLength() {
//        return fileLength;
//    }
//
//    public static void main(String[] args) throws IOException {
//        System.out.println("读取文件.....");
//        StreamFileReader reader = new StreamFileReader("D:\\lanmao_code\\用户关联.pub", 65536);
//        while (reader.read() != -1) {
//
//        }
//        byte[] array = reader.getArray();
//        System.out.println("计算摘要....." + array.length);
//        String sha256Hex = DigestUtils.sha256Hex(array);
//        System.out.println(sha256Hex);
//        reader.close();
//        FileInputStream fis = new FileInputStream("D:\\lanmao_code\\用户关联.pub");
//        byte[] bytes = IOUtils.toByteArray(fis);
//        System.out.println("计算摘要....." + bytes.length);
//        System.out.println(DigestUtils.sha256Hex(bytes));
//    }
//}
